package com.jiruan.invoicemanagementsystem.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

class CaculateLine {
    /*
    功能:
        1.流获取从入学开始，到目前为止已经写了多少行Java代码。
        2.得到写的最多和最少的文件名称以及文件代码行数
    */
    /// /////////////////////////////////////////////////////////
    public static String path = "/Users/zzy/IDEA_F/TalentWebsite/src";
    /// /////////////////////////////////////////////////////////
    public static int line = 0;
    public static int minNumber = 100000;
    public static int maxNumber = 0;
    public static String minName = "";
    public static String maxName = "";

    public static void main(String[] args) throws IOException {
        File file = new File(path);
        allDir(file);
        System.out.println("===================================================");
        System.out.println("至今为止一共写了:"+line+"行代码!真棒!");
        System.out.println("您写过的最多代码的文件叫:"+maxName+"写了"+maxNumber+"行");
        System.out.println("您写过的最少代码的文件叫:"+minName+"写了"+minNumber+"行");
    }

    public static void allDir(File dir) throws IOException {
        File[] files = dir.listFiles();
        if (files == null || files.length == 0) return;
        for (File file : files){
            if (file.isFile() && !file.getName().equals(".DS_Store") && !file.getName().equals("jquery-1.8.3.js")){
                int tempLine = 0;
                //是文件
                BufferedReader br = new BufferedReader(new FileReader(file));
                br.readLine();
                while(br.readLine() != null){
                    tempLine++;
                    line++;
                }
                tempLine++;
                line++;
                if(tempLine < minNumber){
                    minNumber = tempLine;
                    minName = file.getName();
                }
                if(tempLine > maxNumber){
                    maxNumber = tempLine;
                    maxName = file.getName();
                }
                System.out.println("添加了"+file.getName()+"的代码行数("+tempLine+")，当前共有"+line+"行代码。");
            }else{
                //是文件夹
                if(!file.getName().equals("lib")&&!file.getName().equals("images")){
                    allDir(file);
                }
            }
        }
    }
}